package com.bw.lib_net.test_retrofit

import java.lang.reflect.InvocationHandler
import java.lang.reflect.Method
import java.lang.reflect.Proxy

/**
 * @author zhy
 * @date 2025-09-17 09:01
 * @description
 */
class TestRetrofit {
    fun test(){
        val apiService = Proxy.newProxyInstance(ApiService::class.java.classLoader,
            arrayOf(ApiService::class.java),
            object :InvocationHandler{
                override fun invoke(proxy: Any?, method: Method?, args: Array<out Any>?): Any? {
                    //通过反射获得方法上的注解,get,post请求
                    //通过反射获得方法上参数的注解@Field,@Part,@PartMap,@Body   args: 传入的参数
                    //构建OkHttp的request对象发起网络请求
//                    method?.annotations.forEach {
//                        if (it is MyGet){
//
//                        }
//                    }
                    return method?.invoke(proxy, args)
                }

            }
            ) as ApiService

        //调用接口方法
        apiService.getData()
    }
}